def right_align_bubble_sort(arr):
    """
    向右看齐的冒泡排序实现
    每轮比较从左向右进行，将最大元素交换到右侧，类似队列中的"向右看齐"动作
    """
    n = len(arr)
    # 遍历所有数组元素
    for i in range(n):
        # 最后i个元素已经就位，无需比较
        for j in range(0, n - i - 1):
            # 从左向右比较相邻元素
            if arr[j] > arr[j + 1]:
                # 如果当前元素大于下一个元素，则交换它们
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
        # 打印每轮排序后的数组状态（可选）
        print(f"第{i + 1}轮排序后: {arr}")
    return arr


# 示例用法
if __name__ == "__main__":
    # 测试数组
    test_arr = [64, 34, 25, 12, 22, 11, 90]
    print("原始数组:")
    print(test_arr)

    sorted_arr = right_align_bubble_sort(test_arr.copy())
    print("\n排序后的数组:")
    print(sorted_arr)